篇首语:本文由编程笔记#小编为大家整理,主要介绍了VoLTE端到端业务详解 | VoLTE用户注册流程相关的知识,希望对你有一定的参考价值。
书籍来源:艾怀丽《VoLTE端到端业务详解》
一边学习一边整理书中的笔记,并与大家分享,侵权即删,谢谢支持!
附上汇总贴:VoLTE端到端业务详解 | 汇总_COCOgsta的博客-CSDN博客
注册是用户向签约网络请求授权使用业务的过程,在VoLTE解决方案中,LTE用户根据实际的信号强度覆盖,可以由UE选择附着到CS网络或LTE网络进行注册。对于CS网络注册,注册过程与传统CS网络用户注册过程相同。对于LTE网络注册,UE首先附着到EPC网络,再在IMS网络注册。用户注册后,可以享受归属网络提供的服务,包括对用户当前地址和用户身份进行绑定;用户可以正常使用各种签约业务。
PDN(Packet Data Network)是UE要接入的目的网络,对于LTE网络,就是UE要接入到Internet,还是IMS。
APN(Acess Point Name)接入点名用来标识UE接入一个指定的外部网络或一种类型的服务,即在UE/PGW里定义用于标识目的PDN。对于LTE网络,就是UE要接入到哪个PGW,通过这个PGW的SGi接口可以接入到Internet还是IMS。
PDN连接是UE和一个特定PDN之间的IP连接,比如IMS APN指的就是UE接入IMS,CxNET APN指的就是UE接入Internet,实际上就是PGW网元面向用户使用不同APN时建立通往不同目的网络的一个通道,对于VoLTE业务来说,当用户使用VoLTE业务的时候,PGW会将用户的SIP信令消息和RTP媒体流送往IMS网络处理。
图5-22所示为VoLTE用户EPC附着流程。
总的来说,EPC附着分为9个过程。
流程1:终端发起Attach Request请求,并告诉网络支持VoLTE语音业务;
流程2:MME收到终端的附着请求,有可能向HSS要用户的鉴权数据并向用户发起鉴权请求,待用户鉴权通过后,向HSS请求用户的业务签约数据;
流程3:获取用户的签约数据,包含APN、MSISDN等信息;
流程4:MME向PGW申请建立数据业务的默认承载(基于用户签约默认APN为数据业务APN的特性),MME根据APN配置和网络拓扑选择SGW和PGW,向SGW发起Create Session Request请求消息,消息中携带数据业务APN及QCI信息;
流程5:在数据业务开启PCC的情况下,PGW触发数据业务默认承载的PCC流程,PGW通过CCR请求向PCRF发起PCC流程;PCRF通过CCA向PCRF下放PCC规则和QoS信息;
流程6:PGW向MME返回会话建立响应消息,SGW向MME返回Create Session Response信息,消息中包括UE IP地址和DNS地址;
流程7:MME向UE返回附着接受消息,包括PGW为UE分配的IP地址和DNS地址;
以上7步的具体信令流程图如图5-23所示。
流程8:终端发起VoLTE语音业务的PDN连接建立请求;
流程9:网络侧为用户建立VoLTE语音业务的默认承载。
第8、9步的具体信令流程如图5-24所示。
其中,第2步中的MME向HSS要用户鉴权数据和业务数据的详细过程如下。
MME收到请求后向HSS发起Update Location请求信息;MME收到UE的Attach Request后先检查本地是否有该用户的鉴权集,如果没有,MME则向HSS发送AIR消息请求鉴权数据,消息中携带用户的IMSI,HSS向MME返回AIA消息,消息中携带用户的四元组鉴权向量,包括XRES、RAND、AUTN、KASME,EPC网络针对终端的USIM卡完成鉴权流程后,MME向SAE-HSS发送Update Location Request消息,获取用户信息。
Update Location Request消息中携带了两个关键信元,包含UE SRVCC Capability(指示UE是否支持SRVCC能力)、Homogeneous-Support-of-IMS-Voice-Over-PS-Sessions(指示所在RA/TA是否支持IMS Voice PS Sessions)。
HSS向MME回复Update Location ACK信息,包括STN-SR、C-MSISDN、默认APN(比如XXnet APN)、一个或多个PDN签约上下文[比如,IMS APN及QoS(QCI=5,ARP=9)]。
此时返回的STN-SR是HSS给这个用户签约的一个号码,用户实际注册的ATCF网元的STN-SR会在IMS域注册时通过Register消息上报给SCCAS网元,SCCAS会通过HSS重新插入到MME中去。
其中第8、9步的详细过程说明如图5-25所示。
流程1:在Attach和TAU过程中,MME向VoLTE终端发送的Attach Accept、TAU Accept消息中包含“IMS Voice over PS Sessions=1(support)”;VoLTE终端主动向MME发起IMS APN承载建立请求。
流程2:MME向分组域融合DNS发起APN解析请求,根据DNS的解析结果,优选同一SAE-GW中的SGW和PGW;随后MME向SAE-GW发起Create Session Request请求消息,消息中携带IMS APN及QCI信息。
流程3:PGW与PCRF之间进行PCC信息(该UE的相关策略信息)交互(CCR/CCA)。
流程4:EPS(无线LTE+EPC核心网)网络为VoLTE用户建立IMS APN默认承载,PGW经SGW、MME、eNB返回的信息中包含PGW为用户分配的IPv6地址、PGW中预先配置的VoLTE SBC的IP地址列表。
备注:
我们是假定VoLTE用户签约默认APN是数据业务,假如VoLTE用户签约默认APN是IMS APN呢,那EPC注册过程会有哪些不同呢?
我们主要关注的是VoLTE用户通过EPC注册后获取到网络分配的IP地址以及P-CSCF地址是什么,那我们就要查看Attach Accept消息,现网一般都是给用户签约数据业务APN为默认APN,所以现网是通过查看E-RAB Setup Request消息,这些细节不影响对于VoLTE业务整体流程的理解,但在日常故障或用户投诉处理过程中则需要咱们了解这些细节。
VoLTE用户进行IMS注册时由拜访地P-CSCF(SBC/ATCF)、I-CSCF向归属网络发起注册,使用USIM卡的VoLTE用户注册时,如果通过USIM卡导出的注册IMPU(比如SIP:IMSI@ims.mnc.mcc460.3gppnetwork.org)无省份信息,则只能通过拜访地I-CSCF由DRA向归属HSS进行查询。具体注册流程如图5-26所示。
流程1:终端根据附着流程获得的P-CSCF地址,通过EPC网络向P-CSCF发起注册。
流程2:P-CSCF具备ATCF功能,在注册消息中插入STN-SR;P-CSCF根据导出的注册IMPU域名向DNS发起查询,查询结果为P-CSCF拜访本省的I-CSCF地址,并将注册消息发送给I-CSCF。
流程3:I-CSCF通过Cx接口向HSS查询服务S-CSCF信息。
流程4:HSS向I-CSCF下发能力集。
流程5:I-CSCF根据本地配置并通过查询DNS将注册消息发送给用户归属S-CSCF。
流程6:S-CSCF通过Cx接口向HSS下载用户鉴权向量和签约数据,并对用户进行鉴权。
流程7:鉴权完成后,S-CSCF向SCCAS发起第三方注册流程。
流程8:SCCAS通过Sh接口向HSS下载用户签约信息与透明数据,其中包括终端SRVCC能力和STN-SR值,SCCAS通过Message消息向ATCF通知AUT-STI值和C-MSISDN值,如果SCCAS发现注册消息中的值与HSS中STN-SR值不同,那么将通过Sh接口向HSS更新该值。
流程9:HSS通过S6a接口将更新的STN-SR值通知MME,MME更新STN-SR值。
备注:
a.STN-SR、AUT-STI值和C-MSISDN这三个参数在SRVCC业务过程中是怎么影响接续的,在SRVCC专题中会具体描述。
b.终端发起注册(初始注册、重注册)请求时,如收到网络侧发送的错误响应(如408、500、504),终端应立即重新发起注册消息;当多次注册不成功后,终端应具备一定的智能性,不应频繁地自动向网络发起注册消息。
IMS域注册完成后,S-CSCF根据VoLTE用户签约的iFC(Shared iFC),向相应的IMS AS发起第三方注册。
第三方注册流程如图5-27所示。
S-CSCF从VoLTE用户归属三融合HSS/HLR获得用户IMS签约数据,其中包括用户签约的Shared iFC,并将Shared iFC映射为标准iFC,根据iFC优先级和对应AS主机名按顺序将用户注册到IMS AS,一般来说,VoLTE用户会签约三个AS,包含SCCAS(域选和SRVCC两个功能)、VoLTE MMTEL AS(VoLTE业务基本功能)、IP-SM-GW(短信网关功能)。具体注册顺序为:首先注册SCCAS、然后注册VoLTE MMTEL AS、最后注册IP-SM-GW;现网一般是SCCAS与VoLTE MMTEL AS综合设置为VoLTE AS,可一次完成SCCAS和VoLTE AS的注册。
(1)SCCAS注册
① S-CSCF根据用户iFC签约中的SCCAS POOL主机名向IMS DNS发起查询,并根据IMS DNS返回的解析结果选择SCCAS,向SCCAS发起第三方注册请求。
② SCCAS通过Sh接口从用户归属三融合HSS/HLR下载用户签约信息和透明数据,其中包括终端SRVCC能力和STN-SR值,若SCCAS发现注册消息中的STN-SR值与三融合HSS/HLR下载的值不同,则通过Sh接口更新三融合HSS/HLR中的STN-SR值。
③ SCCAS向S-CSCF返回SCCAS第三方注册成功消息。
④ 三融合HSS/HLR通过S6a接口更新VoLTE用户拜访MME中的STN-SR值。
⑤ SCCAS通过消息告知VoLTE SBC/ATCF用户的AUT-STI和C-MSISDN。
(2)VoLTE TAS注册
① S-CSCF根据用户iFC签约中的VoLTE TAS POOL主机名向IMS DNS发起查询,并根据IMS DNS返回的解析结果选择VoLTE TAS,向VoLTE TAS发起第三方注册请求。
② VoLTE TAS通过Sh接口从用户归属三融合HSS/HLR下载用户透明数据。
③ VoLTE TAS向S-CSCF返回VoLTE TAS第三方注册成功消息。
(3)IP_SM_GW第三方注册
① S-CSCF根据用户iFC签约中的IP_SM_GW通用主机名向IMS DNS发起查询,IMS DNS向一级IMS DNS发起查询,S-CSCF根据IMS DNS返回的解析结果选择IP_SM_GW,向IP_SM_GW发起第三方注册请求。
② IP_SM_GW通过Sh接口更新用户归属三融合HSS/HLR中短信业务路由信息,将三融合HSS/HLR中短信业务地址修改为IP_SM_GW网元地址。
③ IP_SM_GW向S-CSCF返回IP_SM_GW第三方注册成功消息。
5.2.4 IP Sec流程
IMS网络的VoLTE业务的核心控制平台,具有基于会话初始协议(SIP)的全IP架构,IP协议固有的缺陷和安全漏洞使IMS很容易遭受攻击,IMS要求所有用户在使用IMS服务之前都必须进行鉴权(认证和授权),协商建立安全的接入通道,即IMS使用因特网协议安全(IPSec)为IMS系统提供安全保护。
终端发起注册(初始注册、重注册)请求时,当收到网络侧发送的错误响应(如408、500、504),终端会立即重新发起注册消息,在移动通信网络的VoLTE业务中一般都采用AKA的鉴权方式,终端需要立即将IP Sec SA清除,重新构建无保护的初始注册消息,未经IP Sec SA保护通道发送的所有注册消息,均需要重新鉴权,S-CSCF重新发起挑战。S-CSCF通过Integrity-Protected参数判定消息是否经过IP Sec SA通道保护。
下面详细描述VoLTE用户注册时的IP Sec相关过程。
5.2.4.1 参数协商过程
3GPP协议33.203关于SA建立的参数协商描述如图5-28所示。
(1)SM1消息携带终端侧的SPI信息、端口信息以及加密和完整性保护的算法
SM1:
举例如下:
(2)SM6消息携带P-CSCF侧的SPI信息,端口信息以及加密和完整性保护的算法
SM6:
举例如下:
(3)SM7消息携带终端和P-CSCF侧的SPI信息,端口信息以及加密和完整性保护的算法
SM7:
举例如下:
(4)SM8消息携带完整性保护指示给S-CSCF
SM8:
5.2.4.2 SA通道建立过程
SA通道建立过程描述如图5-29所示。
(1)初始注册消息
始发端口是终端侧SIP的知名端口:5060。
目的端口是P-CSCF侧SIP的知名端口:5060。
初始注册消息是未受保护的消息。
(2)终端收到401消息后,上发注册消息
始发端口使用终端分配的Port-UC。
目的端口是P-CSCF分配的Port-PS。
这个注册消息是在受保护的通道中传递,对应的200 OK消息(SM12)也是在这个SA中传递
(3)用户作为被叫,P-CSCF发送Invite消息给终端。
始发端口使用P-CSCF分配的Port-PC。
目的端口使用终端分配的Port-US。
后续的180和200 OK消息也是使用这个SA通道。
5.2.4.3 应用示例
1.典型事例
图5-30所示为常见的注册流程,SA通道各个端口信息详细描述如下。
(1)终端侧端口信息
Port-UC=49215;
Port-US=49216。
(2)P-CSCF侧端口信息
Port-PC=9950;
Port-PS=9900。
(3)首次注册消息使用SIP知名端口:5060
终端收到401消息后,使用的源端口是Port-UC=49215,目标端口是Port-PS=9900。
注册完成的200 OK消息,使用的源端口是Port-PS=9900,目标端口是Port-UC=49215。
终端发起订阅消息,使用的源端口是Port-UC=49215,目标端口是Port-PS=9900。
核心网反馈的订阅消息,使用的源端口是Port-PC=9950;目标端口是Port-US=49216。
核心网发送订阅的鉴权消息,使用的源端口是Port-PC=9950;目标端口是Port-US=49216。
终端反馈的订阅鉴权消息的200 OK响应,使用的源端口是Port-UC=49215,目标端口是Port-PS=9900。
2.SA创建过程
如图5-31所示,SA创建过程详细描述如下。
① 初始注册Register消息长度超过1300字节,需要通过TCP链路传递消息,首先进行TCP的三次握手建立TCP链路。
按照协议,只有初始注册消息和首个401消息才能在未受保护的通道中传送,终端收到401消息以后,后续的消息需要通过受保护的SA通道发送,因此拆除掉原来的未受保护的TCP链路。
② 由于401后面的注册消息长度仍然大于1300字节,因此还需要创建TCP链路,这次使用的端口是前面协商的端口,终端侧使用Port-UC,P-CSCF侧使用Port-US。
这个通道是SA安全通道,对于注册事务的后续消息,都是通过TCP通道来传递的。
终端侧收到注册的200 OK消息后,将TCP链路拆除。根据协议描述,通道是拆除还是保留由SIP应用层自行决定。
3.订阅过程SA通道使用
如图5-32所示,订阅过程SA通道使用过程详细描述如下。
① 终端上报订阅消息,消息长度小于1300字节,使用UDP协议传送,不需要创建链路的过程。
直接使用SA安全通道,源端口使用Port-UC,目的端口使用Port-PS。
对于订阅的200 OK消息,因为其长度小于1300字节,因此继续使用UDP传送。由于UDP没有链路的概念,因此不会订阅原来上发的通道,而是使用另外一个SA通道,本地端口是Port-PC,目标端口是Port-US。
② 对于订阅通知鉴权消息,因为长度也是小于1300字节,因此同上面的订阅消息一样,都是使用UDP,上行消息和下行消息使用两个不同的SA通道。
4.呼叫过程中SA通道使用
如图5-33所示,呼叫过程SA通道使用过程详细描述如下。
① 终端作为被叫的流程。P-CSCF对于发给终端的第一个Invite消息,当前都是使用UDP传输。
按照规范,当Invite消息长度超过1300字节时,应该使用TCP协议传输。
终端返回的183消息也是使用UDP消息,尽管长度也超过了1300字节。
② 对于Prack消息,当前P-CSCF是根据用户注册时使用的传输协议类型来决定的,由于注册时是使用TCP,因此这里的Prack使用TCP来传输,由于之前没有建立这个方向的TCP链路,因此这里需要有TCP建链过程。
对于P-CSCF建立的TCP链路,不会立刻删除,在对应的事务结束以后,保持3分钟才拆除链路,以RST消息拆除。
5.重注册鉴权导致SA更换过程
如图5-34所示,重注册鉴权中SA更换过程详细描述如下。
① 重注册消息可以通过受保护的SA通道发来,也可以通过未被保护的知名端口发来,如果从知名端口发来,那么原来的SA通道不再使用,流程如初始注册过程。
② SA更换的过程中,Port-s端口不更换,只更换Port-c。对于终端来说,初始有两个旧的SA通道:进(Inbound)和出(Outbound)。
③ 如果注册消息从受保护的SA通道发来,那么401也需要从SA通道下发给终端。在收到401消息后,根据401中的P-CSCF分配的新的Port-PC,以及终端自己分配的Port-UC,创建两个新的SA通道。
④ 401后的注册消息,从新的SA通道发送出去,在收到对应的200 OK消息后,这个鉴权流程完成。这时并存有4个SA通道(两个旧的SA和两个新的SA)。
⑤新的通道的生命周期取两个值的最大值:旧的SA通道的剩余生命周期时长;注册200 OK消息里面携带的失效时长。
6.旧SA通道删除流程(UE)
如图5-35所示,UE发起的SA通道删除过程详细描述如下。
UE始发的消息需要从新的SA发送,除非这个消息属于一个悬置的SIP事务,且该SIP事务前期消息由旧的SA来发送。如果旧的SA还在被使用,则称为“一个悬置的SIP事务”。在UE收到P-CSCF新的SA通道传来的消息时,旧的SA通道在SIP消息传递完毕或旧的SA通道生命周期结束的条件下可以将旧的SA通道删除。而且,在旧的SA通道生命周期结束后,SA通道可无条件删除。
7.旧SA通道删除流程(P-CSCF)
如图5-36所示,P-CSCF发起的SA通道删除过程详细描述如下。
① 当在旧SA上收到UE的新的SA通道(Inbound)传来消息或还有很短的生命周期时,P-CSCF需开始使用新的SA来发送消息。只有一种情况是例外的,即一个SIP消息属于一个悬置的SIP事务则需在旧SA上传送。旧SA通道在SIP消息传送完毕或生命周期结束时可以删除,通常是在旧SA通道生命周期结束后会删除。
② 这一段旧的SA通道删除的时机,协议描述得不是很清楚,从当前实现的情况来看,终端和P-CSCF理解的是在生命周期结束的点才删除旧的SA。
当前的生命周期取注册的200 OK里面的失效时长为3600s。